package dagbok.data;

import java.sql.*;

import dagbok.entity.Tarea;

public class TareaDAO {
	Connection conexion = null;
	PreparedStatement prepstmt = null;
	
	
	public TareaDAO() {
		
	}
	
	private Connection getConexion() throws SQLException{
		Connection conn;
		conn = ConexionDB.getInstancia().getConexion();
		return conn;
	}
	
	public void ingresar(Tarea tarea) {
		try {
			String consultaSQL = "INSERT INTO tareas VALUES (null,?,?,?,null)";
			conexion = getConexion();
			prepstmt = conexion.prepareStatement(consultaSQL);
			prepstmt.setString(1, tarea.getDesc());
			prepstmt.setDate(1, tarea.getFechaIn());
			prepstmt.setDate(2, tarea.getFechaFin());
			prepstmt.setDate(3, tarea.getFechaReal());
			prepstmt.executeUpdate();
			System.out.print("Tarea agregada");
		} catch (SQLException ex) {
			ex.printStackTrace();
		} finally {
			try {
				if (prepstmt!=null)
					prepstmt.close();
				if (conexion!=null)
					conexion.close();
			} catch (SQLException se) {
				se.printStackTrace();
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
	}
	
	public void finalizarTarea(Tarea tarea, Date fec_real) {
		try {
			String consultaSQL = "UPDATE tareas SET fecha_realizacion = ? WHERE id_tarea = ?";
			conexion = getConexion();
			prepstmt = conexion.prepareStatement(consultaSQL);
			prepstmt.setDate(1, fec_real);
			prepstmt.setInt(2, tarea.getIdTarea());
			prepstmt.executeUpdate();
			System.out.print("Tarea finalizada registrada");
		} catch (SQLException se) {
			se.printStackTrace();
		} finally {
			try {
				if(prepstmt!=null)
					prepstmt.close();
				if(conexion!=null)
					conexion.close();
			} catch (SQLException se) {
				se.printStackTrace();
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
	}
	
	public void listarTareas() {
		ResultSet rs = null;
		try {
			String consultaSQL = "SELECT * FROM tareas WHERE fecha_realizacion = null";
			conexion = getConexion();
			prepstmt = conexion.prepareStatement(consultaSQL);
			rs = prepstmt.executeQuery();
			while(rs.next())
			{
				System.out.print(rs.getInt("id_tarea")+" | "+rs.getString("descripcion")+" | "+rs.getDate("fecha_inicio")+" | "+rs.getDate("fecha_fin"));			
			}
		} catch (SQLException se) {
			se.printStackTrace();
		} finally {
			try {
				if(rs!=null)
					rs.close();
				if(prepstmt!=null)
					prepstmt.close();
				if(conexion!=null)
					conexion.close();
			} catch (SQLException se) {
				se.printStackTrace();
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
	}
	
}
